package re.jf.echangeur.test;

/**************************************************************
 // nom: arbre2.java
 // Programmé par Draven
 // Le 07/09/2003
 // **************************************************************/
//import java.io.File;
//
//import javax.swing.JFrame;
//import javax.swing.JTree;
//import javax.swing.tree.DefaultMutableTreeNode;
//import javax.swing.tree.DefaultTreeModel;
//
//public class arbre2 extends JFrame {
//	public static void main(String[] arg) {
//		arbre2 Arbre = new arbre2();
//		Arbre.setTitle("Arbre");
//		Arbre.setSize(150, 700);
//		Arbre.setVisible(true);
//
//	}
//
//	public arbre2() {
//		int i;
//		File[] lecteurs;
//		JTree arbre = new JTree();
//		/* création d'un noeud */
//		DefaultMutableTreeNode racine = new DefaultMutableTreeNode(
//				"Poste de travail");
//		lecteurs = File.listRoots();
//		for (i = 0; i < lecteurs.length; i++) {
//			/* créé un noeud pour chaque lecteur */
//			DefaultMutableTreeNode noeud = new DefaultMutableTreeNode(
//					lecteurs[i]);
//			/* créé l'arborescence pour chaque lecteur */
//			ajout_dossier(lecteurs[i], noeud);
//			/* ajouter le lecteur avec son arborescence au noeud racine */
//			racine.add(noeud);
//		}
//		/* model de l'arbre */
//		DefaultTreeModel model = new DefaultTreeModel(racine);
//		arbre.setModel(model);
//		/* ajouter l'arbre à la JFrame */
//		getContentPane().add(arbre);
//
//		/* fermer l'application */
//		setDefaultCloseOperation(EXIT_ON_CLOSE);
//	}
//
//	/**************************************************************************
//	 * nom : ajout_dossier * rôle : ajouter les dossiers et fichiers d'un
//	 * lecteur *
//	 **************************************************************************/
//	public void ajout_dossier(File lecteur, DefaultMutableTreeNode noeud) {
//		int i;
//		File[] liste;
//		/*
//		 * listFiles retourne tous les nom de fichiers et de sous-répertoires
//		 * contenu dans un répertoire
//		 */
//		liste = lecteur.listFiles();
//		try {
//			for (i = 0; i < liste.length; i++) {
//				/* on teste si c'est un répertoire */
//				if (liste[i].isDirectory() == true) {
//					/* sitel est le cas on crée un nouveau noeud */
//					DefaultMutableTreeNode sous_rep = new DefaultMutableTreeNode(
//							liste[i]);
//					/* que l'on ajoute au noeud précédent */
//					noeud.add(sous_rep);
//					/* et on regarde le contenu de ce nouveau répertoire */
//					ajout_dossier(liste[i], sous_rep);
//				} else {
//					noeud.add(new DefaultMutableTreeNode(liste[i]));
//				}
//			}
//		} catch (NullPointerException e) {
//			// exception que l'on obtient lorsqu'il n'y a plus de répertoire ou
//			// de fichier
//		}
//	}
//}
// /**************************************************************
// nom: arbre2.java
// Programmé par Draven
// Le 07/09/2003
// **************************************************************/
import java.io.File;

import javax.swing.JFrame;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;

public class arbre2 extends JFrame {
	public static void main(String[] arg) {
		arbre2 Arbre = new arbre2();
		Arbre.setTitle("Arbre");
		Arbre.setSize(150, 700);
		Arbre.setVisible(true);

	}

	public arbre2() {
		int i;
		File[] lecteurs;
		JTree arbre = new JTree();
		/* création d'un noeud */
		DefaultMutableTreeNode racine = new DefaultMutableTreeNode(
				"Poste de travail");
		lecteurs = File.listRoots();
		for (i = 0; i < lecteurs.length; i++) {
			/* créé un noeud pour chaque lecteur */
			DefaultMutableTreeNode noeud = new DefaultMutableTreeNode(
					lecteurs[i]);
			/* créé l'arborescence pour chaque lecteur */
			ajout_dossier(lecteurs[i], noeud);
			/* ajouter le lecteur avec son arborescence au noeud racine */
			racine.add(noeud);
		}
		/* model de l'arbre */
		DefaultTreeModel model = new DefaultTreeModel(racine);
		arbre.setModel(model);
		/* ajouter l'arbre à la JFrame */
		getContentPane().add(arbre);

		/* fermer l'application */
		setDefaultCloseOperation(EXIT_ON_CLOSE);
	}

	/**************************************************************************
	 * nom : ajout_dossier * rôle : ajouter les dossiers et fichiers d'un
	 * lecteur *
	 **************************************************************************/
	public void ajout_dossier(File lecteur, DefaultMutableTreeNode noeud) {
		int i;
		File[] liste;
		/*
		 * listFiles retourne tous les nom de fichiers et de sous-répertoires
		 * contenu dans un répertoire
		 */
		liste = lecteur.listFiles();
		try {
			for (i = 0; i < liste.length; i++) {
				/* on teste si c'est un répertoire */
				if (liste[i].isDirectory() == true) {
					/* sitel est le cas on crée un nouveau noeud */
					DefaultMutableTreeNode sous_rep = new DefaultMutableTreeNode(
							liste[i]);
					/* que l'on ajoute au noeud précédent */
					noeud.add(sous_rep);
					/* et on regarde le contenu de ce nouveau répertoire */
					ajout_dossier(liste[i], sous_rep);
				}
				/*
				 * si ce n'est pas un dossier c'est donc un fichier que l'on va
				 * donc gréffé au noeud courant
				 */else {
					noeud.add(new DefaultMutableTreeNode(liste[i]));
				}
			}
		} catch (NullPointerException e) {
			// exception que l'on obtient lorsqu'il n'y a plus de répertoire ou
			// de fichier
		}
	}
}
